/**
 * 说明  本js按照当前需求写，其他地方不一定适用
 * 
 * 列表 .dropdown-list div 上添加 data-name="baseline" 自动获取管道信息
 * 		如果同一组查询条件中 有列表.dropdown-list data-name="baseSegment"则在点击 选择管道信息时 加载管段信息
 * 
 * new page(box,head,searchUrl); 添加查询列表模块 box 模块div 参数searchUrl 查询地址，如果不传入则查询div上 search属性
 * div 属性 init 是否页面加载就初始化 表格
 * 		   click 点击某个元素 就初始化表格
 * 
 * div容器 包含元素  .tabBox 表格容器
 * 				  .import 导入按钮 属性 uploadUrl上传地址 title 弹框显示标题 
 * 				  .btn.search 查询按钮
 * 				  .btn.del 删除按钮
 * 				  .btn.add 添加按钮
 *                .btn.edit编辑按钮
 *                .btn.delAll 删除选择项按钮
 * 
 * @param box
 * @param head
 * @param searchUrl
 * @returns
 */

var searchlev=5;//搜索对象5级
var title=".PopupTitle";//弹框标题
$(function(){
	

})


page=function(box,head,searchUrl,selectModal,afterLoadTable,onlyFirstPage)
{

	this.head=head;
	this.context=box;
	this.url=searchUrl==undefined?$(box).attr("search"):searchUrl;
	this.selectModal=selectModal;
	this.afterLoadTable=afterLoadTable;
	this.onlyFirstPage=(onlyFirstPage==undefined?false:onlyFirstPage);
	//行点击
	this.rowClick=function(data,obj,orderNum){
		var t=$(obj).parents(".tabBox").data("option").customParam;
		
		var model=t.selectModal==undefined?$(t.context).find(".rowModel"):t.selectModal(data);
		if(model.length == 1 )//详情展示
		{
			$(t.context).find(".tabBox tbody tr[dchildrow_]").css("display","none");
			var tr=$(t.context).find(".tabBox tbody tr").eq(orderNum*2+1);
			tr.css("display","");
			tr.find("td").html(t.showDetails(data,model,t));
			tr.addClass("info-tr");
		}
		
	}

	$(box).find(".showDetail").live("click",this,function(param){
		
		var t=$(this).parents(".tabBox").data("option").customParam;
		var index=$(this).parents("tr").index();
		index=index/2+index%2;
		var tr=$(t.context).find(".tabBox tbody tr").eq(index*2+1);
		
		if(tr.attr("open") ==  undefined)
		{
			var data=$(param.data.context+" .tabBox").data("option").allData;
			var model=t.selectModal==undefined?$(t.context).find(".rowModel"):t.selectModal(data[index]);
			if(model.length == 1 )//详情展示
			{
				$(t.context).find(".tabBox tbody tr[dchildrow_]").css("display","none");
				$(t.context).find(".tabBox tbody tr[dchildrow_]").removeAttr("open");
				tr.css("display","");
				tr.find("td").html(t.showDetails(data[index],model,t));
				tr.addClass("info-tr");
				t.initTitle();
			}
			tr.attr("open","dk");
		}else
		{
			tr.removeAttr("open");
			tr.css("display","none");
		}
	});
	
	
	//显示详情
	this.showDetails=function(data,model,t)
	{
		
		var html=model.clone().html();
		
		for(var item in data)
		{
			html=html.replace(eval("/#"+item+"</g"), data[item]+"<");
		}
		return html;
	}
	
	
	
	//初始化table
	this.initTable=function(t){
		
		$(t.context+" .tabBox").attr("id",t.cerateId(t));
		
		 $(t.context+" .tabBox").initTable({
             url:t.url,
             columnData:t.head,
             selectDataNow:true,
             doubleRowMode:true,
             isrowClick:false,
             rowClickMethod:t.rowClick,
             customParam:t,
             onlyFirstPage:t.onlyFirstPage,
//             maxHeightMode:600,
             afterLoadTable:t.addTitle
         });
	}
	
	this.cerateId=function(t)
	{
		var el=['a','b','c','d','e','f','g','h','i','j','k','1','2','3','4','5','6'];
		
		var id="wm_"+el[Math.round(Math.random()*10)];
		while( $("#"+id).length!=0)
		{
			
			id+=el[Math.round(Math.random()*10)];
		}
		return id;
		
	}
	this.addTitle=function(data){
//		$(".page_newlist").parent().remove();
		$("td",this.customParam.context).each(function(){
			
			if($(this).find("em").length == 0)
			{
				if($(this).text().length >0)
				{
					$(this).attr("title",$(this).text());
				}
				
			}else{
				$(this).find("em").each(function(){
					if($(this).text().length >0)
					{
						$(this).attr("title",$(this).text());
					}
				})
			}
		});
		if(this.customParam.afterLoadTable != undefined)
		{
			this.customParam.afterLoadTable(this);
		}
		
	}
	this.initTitle=function (){
		$(".show-ul").each(function(){
			
			$(this).find("li").each(function(index){
				var title=$(this).text().replace(/\s*/ig,"");
				
				if(title.length ==0)
				{
					$(this).find("img").each(function(){
						var src=$(this).attr("src");
						if(src.lastIndexOf("search.png")>0){
							$(this).parent().attr("title","查看详情");
						}else if(src.lastIndexOf("icon1_07.png")>0){
							$(this).parent().attr("title","发布");
						}else if(src.lastIndexOf("del.png")>0){
							$(this).parent().attr("title","删除本条数据");
						}
					});
				}else{
					title=title.substring(title.indexOf(":")+1);
					
					$(this).attr("title",title);
				}
				
			});
		});
	}
	
	//是否默认初始化数据
	if($(box).attr("init"))
	{
		this.initTable(this);
	}
	
	//是否点击初始化数据
	if($(box).attr("click") != undefined)
	{
	
		$($(box).attr("click")).click(this,function(param){
			if($(this).attr("loadStat") == undefined)
			{
				param.data.initTable(param.data);
				$(this).attr("loadStat","true");
			}else{
				var t=param.data;
				$(t.context).find(".tabBox").refresh();
			}
		
		})
	}
	
	//导入数据
	$(box).find(".import").live("click",this,function(param){
		if($(this).attr("uploadUrl") != undefined || $(this).parents(".tabBox").attr($(this).attr("tag")) !=undefined)
		{
			var url=$(this).attr("uploadUrl")!=undefined?$(this).attr("uploadUrl"):$(this).parents(".tabBox").attr($(this).attr("tag"));
			var title=$(this).attr("title")!=undefined?$(this).attr("title"):"导入"+$(this).parents(".tabBox").attr("title");
			if($(this).parent())
			
			var data_={"upUrl":url,"title":title};
			openUploadDialog(data_);
		}
		
	})
	
	
	
	//下载模板
	$(box).find(".downTmpl").live("click",this,function(param){
//		alert($(this).attr("downUrl"));
		if($(this).attr("downUrl") != undefined || $(this).parents(".tabBox").attr($(this).attr("tag")) !=undefined)
		{
			var url=$(this).attr("downUrl")!=undefined?$(this).attr("downUrl"):$(this).parents(".tabBox").attr($(this).attr("tag"));
			$("#downTmpl").remove();
			$(window.document.body).append("<div id='downTmpl' style='display:none'><form action='"+url+"' id='downFrom'   name='downFrom' ></form></div>");
			document.getElementById("downFrom").submit();
		}
		
	})
	
	
	
	//下载模板
	$(box).find(".export").live("click",this,function(param){
		if($(this).attr("downUrl") != undefined || $(this).parents(".tabBox").attr($(this).attr("tag")) !=undefined)
		{
			
			if($("#exportDiv").length >0)
			{
				$("#exportDiv").remove();
			}
				$(window.document.body).append('<div id="exportDiv" style="display:none"><iframe id="exportIfram" ></iframe></div>');
			
			var url=$(this).attr("downUrl")!=undefined?$(this).attr("downUrl"):$(this).parents(".tabBox").attr($(this).attr("tag"));
			$("#downTmpl").remove();
			var formObj = document.createElement("form");
			formObj.setAttribute("method", "post");
			formObj.setAttribute("action", url);
			var t=param.data;
			var data=getParam($(t.context).find(".clearFix:eq(0)"));
			if(data == null)
			{
				return ;
			}
			for(var i in data){
				var inputObj = document.createElement("input");
				inputObj.setAttribute("name", data[i].name);
				inputObj.setAttribute("value", data[i].val);
				
				formObj.appendChild(inputObj);
			}
			document.getElementById('exportIfram').contentWindow.document
					.write(formObj.outerHTML);
			document.getElementById('exportIfram').contentWindow.document
					.getElementsByTagName("form")[0].submit();
		   
		}
		
	})
	
	
	//绑定查询按钮
	if($(box).find(".search").length >0 )
	{
		$(box).find(".search").live("click",this,function(param){
			var t=param.data;
			var data=getParam($(t.context).find(".clearFix:eq(0)"));
			console.log(data);
			if(data == null)
			{
				return ;
			}
			if(data.length >0){
				var str="{";
				for(var i in data){
					if(data[i].val.length > 0){
						str+="\""+data[i].name+"\":\""+data[i].val+"\",";
					}

				}
				str+="\"1\":\"1\"";
				str+="}";
				$(t.context).find(".tabBox").selectDataAfterSetParm(eval('('+str+')'));
			}else{
				t.initTable(t);
				//$(t.context).find(".tabBox").selectDataAfterSetParm(eval('({})'));
			}
		});
	}
	//添加按钮
	if($(box).find(".add").length >0 )
	{
		$(box).find(".add").click(this,function(param){
			var model=$(this).attr("modal");
			if(model != undefined)
			{
				$(model).attr("url",$(this).attr("url"));
				$(model).find(title).html($(this).attr("title"));
				$(model).initData(null);
				$(model).find("div.dropdown-list[data-name]").each(function(){
					initList($(this),undefined,$(model));
				})
				$(model).find(".submit").unbind("click").click($(param.data.context+" .tabBox").data("option").customParam,function(p){
					$(model).submit(function(d,p){
						
						$(p.context).find(".tabBox").refresh();
					},undefined,p.data);
				})
				$(model).modal("show");
				$(".modal-backdrop.fade.in").unbind("click");
				$(".modal-backdrop.fade.in").die();
			}
		})
		
		
	}
	//ajax 按钮
	$(box).find(".ajax").live("click",this,function(param){
		var index=$(this).parents("tr").index();
		index=index/2+index%2;
		var tableData=$(param.data.context+" .tabBox").data("option").allData;
		var id=tableData[index].ID;
		if(id == undefined)
		{
			id=tableData[index].ID_;
		}
		if(id == undefined)
		{
			id=tableData[index].id;
		}
		
		
		if($(this).attr("url") != undefined || $(this).parents(".tabBox").attr($(this).attr("tag")) !=undefined)
		{
			var url=$(this).attr("url")!=undefined?$(this).attr("url"):$(this).parents(".tabBox").attr($(this).attr("tag"));
			var p=new Object();
			p.data=param.data;
			p.el=this;
			p.fn=window[$(this).parents(".tabBox").attr($(this).attr("tag")+"Result")];
			
			resultAjax(url,"id="+id,param.data.defaultAjaxResult,"JSON",p);
		}
		
		
		
	});
	//删除按钮
	$(box).find(".del").live("click",this,function(param){
		var url=$(this).attr("url")!=undefined?$(this).attr("url"):$(this).parents(".tabBox").attr($(this).attr("tag"));
		
		if(!confirm("是否确认删除？"))
		{
			return ;
		}
		var index=$(this).parents("tr").index();
		index=index/2+index%2;
		var tableData=$(param.data.context+" .tabBox").data("option").allData;
		var id=tableData[index].ID;
		if(id == undefined)
		{
			id=tableData[index].ID_;
		}
		if(id == undefined)
		{
			id=tableData[index].id;
		}
		if($(this).attr("idTag") != undefined)
		{
			id=tableData[index][$(this).attr("idTag")];
		}
		
		resultAjax(url,"id="+id,param.data.defaultAjaxResult,"JSON",param.data);
	});
	
	////删除按钮
	//$(box).find(".delAll").live("click",this,function(param){
	//	var url=$(this).attr("url")!=undefined?$(this).attr("url"):$(this).parents(".tabBox").attr($(this).attr("tag"));
	//	var ids="";
	//	var tableData=$(param.data.context+" .tabBox").data("option").allData;
	//	$(param.data.context).find(".tabBox tbody tr .check-box .active").each(function(){
	//		var index=$(this).parents("tr").index();
	//		index=index/2+index%2;
	//		var id=tableData[index].ID;
	//		if(id == undefined)
	//		{
	//			id=tableData[index].ID_;
	//		}
	//		if(id == undefined)
	//		{
	//			id=tableData[index].id;
	//		}
	//		ids+="id="+id+"&";
	//	})
	//	if(ids.length == 0)
	//	{
	//		alert("请选择需要删除的数据!");
	//		reteurn ;
	//	}
	//	if(!confirm("是否确认删除？"))
	//	{
	//		return ;
	//	}
	//	ids+="1=1";
	//	resultAjax(url,ids,param.data.defaultAjaxResult,"JSON",param.data);
	//});
	
	//编辑按钮
	$(box).find(".edit").live("click",this,function(param){
		var model=$(this).attr("modal");
		if(model != undefined)
		{
			if(typeof ($(model).modal) == "function")
			{
				$(model).modal("show");
			}else{
				$(model).show();
			}

			$(model).find(title).html($(this).attr("title"));
			var index=$(this).parents("tr").index();
			index=index/2+index%2;
			var tableData=$(param.data.context+" .tabBox").data("option").allData;
			var id=tableData[index].ID;
			if(id == undefined)
			{
				id=tableData[index].ID_;
			}
			if(id == undefined)
			{
				id=tableData[index].id;
			}
			var url=$(this).attr("url")!=undefined?$(this).attr("url"):$(this).parents(".tabBox").attr($(this).attr("tag"));
			
			$(model).attr("url",url+"?id="+id );
			$(model).initData(tableData[index]);
			$(model).find("div.dropdown-list[data-name]").each(function(){
				initList($(this),undefined,$(model));
			})
			$(model).find(".submit").unbind("click").click($(param.data.context+" .tabBox").data("option").customParam,function(p){
					$(model).submit(function(d,p){
						$(p.context).find(".tabBox").refresh();
					},undefined,p.data);
			})
			$(".modal-backdrop.fade.in").unbind("click");
			$(".modal-backdrop.fade.in").die();
		}
	})
	
	
	//添加tabl 选择事件
	$(box).find(".tabBox thead .check-box").live("click",this,function(param){
		var index=$(this).parent().parent().index();
		var className=$(this).find("i").attr("class");
		$(param.data.context).find(".tabBox tbody tr").each(function(){
			$(this).find("td").eq(index).find(".check-box i").attr("class",className);
		})
	})
	
	$(box).find(".tabBox tbody tr .check-box").live("click",this,function(param){
		var num=$(param.data.context).find(".tabBox tbody tr .check-box").length;
		var selNum=$(param.data.context).find(".tabBox tbody tr .check-box .active").length;
		if(num == selNum)
		{
			$(box).find(".tabBox thead .check-box i").addClass("active");
		}else{
			$(box).find(".tabBox thead .check-box i").removeClass("active");
		}
	});
	
	
	this.defaultAjaxResult=function(data,param)
	{
		if(param.fn != undefined)
		{
			//自定义处理方法
			param.fn(data,param);
			return ;
		}
		
		if(data.result != undefined)
		{
			data=data.result;
		}
		if(data.status == 0)
		{
			
			if(param.el != undefined)
			{
				param=param.data;
			}
			//alert("操作成功！");
			$(param.context).find(".tabBox").refresh();
		}else{
			var errList=data.errList;
			var msg="操作失败";
			if(errList != undefined )
			{
				for(var item in errList)
				{
					msg+="\n"+errList[item];
				}
			}
			alert(msg);
		}
	}
	
}

$(function(){
	init_Page();
})

function init_Page(){
	bindEvent();
	loadData();
	
	$.fn.extend({
		"submit":submit,
		"initData":initData
		});
}




function getParam(box)
{

	var data=new Array();
	if(!validation(box))
	{

		return null;
	}



	//单选框
	$(box).find(".bk-select").each(function(){
		;
		data.push({name:$(this).attr("alias"),val:$(this).find(".bk-input-span [data-value]:first").attr("data-value")});
	});
	//单选框
	$(box).find(".ck1[data-name] span.check-box .active").each(function(){
	
		data.push({name:$(this).parent().parent().attr("data-name"),val:$(this).parent().parent().attr("data")});
	});
	//复选框
	$(box).find(".ck span.check-box.selected[data-name]").each(function(){
		data.push({name:$(this).attr("data-name"),val:$(this).attr("data")});
	})

	
	$(box).find("input[data-name]").each(function(){
		if( $(this).val().length > 0 )
		{
			data.push({name:$(this).attr("data-name"),val:$(this).val()});
		}else{
			data.push({name:$(this).attr("data-name"),val:""});
		}
	})
	$(box).find("select[data-name]").each(function(){
		if( $(this).val().length > 0 )
		{
			data.push({name:$(this).attr("data-name"),val:$(this).val()});
		}else{
			data.push({name:$(this).attr("data-name"),val:""});
		}
	})
	//下拉
	$(box).find(" div.dropdown-list[data-name]").each(function(){
		if($(this).find(".drop-list-min a").attr("id") != "" && $(this).find(".drop-list-min a").attr("id") != undefined)
		{
			var name=$(this).attr("alias") != undefined?$(this).attr("alias"):$(this).attr("data-name");

			data.push({name:name,val:$(this).find(".drop-list-min a").attr("id")});
		}else{
			var name=$(this).attr("alias") != undefined?$(this).attr("alias"):$(this).attr("data-name");
			data.push({name:name,val:""});
		}
	})

	console.log(data);
	return data;
}


/**
 * 获取列表选择值
 * @param context
 * @returns
 */
function getListSelect(context)
{
		if($(context).find(".checked a").attr("id") != "" && $(context).find(".checked a").attr("id") != undefined)
		{
			return $(context).find(".checked a").attr("id");
		}
		return null;
}
/**
 * 加载数据
 * 
 */
loadData=function(){

	if($(".dropdown-list[data-name='baseline']").length>0)
	{

		resultAjax(p_path+"/comm/getLine.json","i="+Math.random(),setBaseLine,"JSON");
	}
	
	if($(".dropdown-list[code]").length>0)
	{
		$(".dropdown-list[code]").each(function(){
			new codeTool($(this));
		})
		
	}
	if($("select[code]").length>0)
	{
		$("select[code]").each(function(){
			new codeTool($(this));
		})

	}


	if($(".dropdown-list[data-name]").length>0)
	{
		
		$(".dropdown-list[data-name]").each(function(){

			initList($(this));
		})
	}

	if($("select[data-name]").length>0)
	{

		$("select[data-name]").each(function(){
			initSelect($(this));
		})
	}

	
}


/**
 * 字典表数据加载
 * @param type
 * @returns
 */
codeTool=function(type)
{
		this.type=type;
		this.setData=function(data,type){
			if(typeof (data) == "string")
			{
				data=JSON.parse(data);
			}

			console.log(data);
			//data=JSON.parse(data);
			if(data.result != undefined)
			{
				data=data.result;
			}
			if(type.is("select"))
			{

				type.empty();
				type.append('<option value="">请选择</option>');
				for(var i = 0;i<data.length;i++)
				{
					type.append('<option value="'+data[i].id+'">'+data[i].shortName+'</option>');
				}
			}else if(type.is("div"))
			{
				type.find("ul").append('<li><a href="javascript:void(0);" >全部</a></li>');

				type.find("ul").css("z-index","999999999999");

				for(var i = 0;i<data.length;i++)
				{
					if(data[i].level == 1)
					{
						type.find("ul").append('<li><a href="javascript:void(0);" id="'+data[i].id+'">'+data[i].shortName+'</a></li>');
					}

				}
			}

		}
		resultAjax(p_path+"/comm/codes.json","majorCode="+type.attr("code"),this.setData,"JSON",this.type);
	
}




/**
 * 绑定基本事件
 */
bindEvent=function()
{

	if($(".dropdown-list[data-name='baseSegment']").length >0)
	{
		$(".dropdown-list[data-name='baseline'] li").live("click",function(){
			resultAjax(p_path+"/comm/getSegment.json","lineId="+$(this).find("a").attr("id"),setBaseSegment,"JSON",$(this).parent().parent().parent());
			var segment=$(this).parent().parent().parent().parent().find(".dropdown-list[data-name='baseSegment']");
			segment.find(".checked ").html('<a href="javascript:void(0);" >全部管段</a>');
		});
	}



	if($(".dropdown-list[data-name='taskSegment']").length >0)
	{
		$(".dropdown-list[data-name='baseline'] li").live("click",function(){

			resultAjax(p_path+"/comm/ajaxTaskSegment.json","lineId="+$(this).find("a").attr("id"),setTaskSegment,"JSON",$(this).parent().parent().parent());
			var segment=$(this).parent().parent().parent().parent().find(".dropdown-list[data-name='taskSegment']");
			segment.find(".checked ").html('<a href="javascript:void(0);" >全部管段</a>');
		});
	}


	
	//提交信息
//	$(".btn.submit").click(function(){
//		$($(this).attr("box")).submit();
//	})
}

/**
 * 设置管道信息
 * @param data
 */
setBaseLine=function(data){

	//alert($(".dropdown-list[data-name='baseline'] ul").length);
	$(".dropdown-list[data-name='baseline'] ul").css("z-index","999999999999");
	$(".dropdown-list[data-name='baseline'] ul").empty();
	$(".dropdown-list[data-name='baseline'] ul").append('<li><a href="javascript:void(0);" >全部管道</a></li>');
	if(data.result != undefined)
	{
		data=data.result;
	}
	for(var item in data)
	{
		$(".dropdown-list[data-name='baseline'] ul").append('<li><a href="javascript:void(0);" id="'+data[item].id+'">'+data[item].name+'</a></li>');
	}

	
}

/**
 * 设置管段信息
 * @param data
 */
setBaseSegment=function(data,lineUI){
	var segment=$(lineUI).parent().parent().parent().find(".dropdown-list[data-name='baseSegment']");
	//alert(segment.length);
	if(segment.length ==0){
		return ;
	}
	segment.find("ul").css("z-index","999999999999");
	segment.find("ul").empty();
	segment.find("ul").append('<li><a href="javascript:void(0);" >全部管段</a></li>');
	if(data.result != undefined)
	{
		data=data.result;
	}
	for(var i=0;i<data.length;i++)
	{
		segment.find("ul").append('<li><a href="javascript:void(0);" id="'+data[i].ID+'">'+data[i].NAME+'</a></li>');
	}
}

setTaskSegment=function(data,lineUI){
	var segment=$(lineUI).parent().parent().parent().find(".dropdown-list[data-name='taskSegment']");
	//alert(segment.length);
	if(segment.length ==0){
		return ;
	}
	segment.find("ul").css("z-index","999999999999");
	segment.find("ul").empty();
	segment.find("ul").append('<li><a href="javascript:void(0);" >全部管段</a></li>');
	if(data.result != undefined)
	{
		data=data.result;
	}
	for(var i=0;i<data.length;i++)
	{
		segment.find("ul").append('<li><a href="javascript:void(0);" id="'+data[i].ID+'">'+data[i].NAME+'</a></li>');
	}
}

function initSelect(context,url,model)
{


	var data="";
	if($(context).attr("where")!= undefined)
	{
		var v=searchlev;
		var beas=$(context);
		var where=beas.parent();
		var screen="select[data-name='"+beas.attr("where")+"']";

		while(where.find(screen).length == 0 && v>0)
		{
			where=where.parent();
			v--;
		}
		if(where.find(screen).length >0 )
		{
			var val=where.find(screen).val();
			if(val != null && val.length >0)
			{
				data=$(context).attr("where")+"="+val;
			}else{
				return ;
			}
		}

	}
	resultAjax((url==undefined?$(context).attr("url"):url),data,function(data,box){


		if(data.data != undefined ){
			data=data.data;

		}
		data=data.result !=undefined ?data.result:data;
		data=data.list !=undefined ?data.list:data;
		$(box).empty();
		$(box).append('<option value="">请选择</option>');
		for(var item in data)
		{
			$(box).append('<option value="'+data[item][$(box).attr("sel-id")]+'">'+data[item][$(box).attr("sel-name")]+'</option>');
		}

		if($(box).attr("default") != undefined )
		{


		}
		if($(box).attr("next") != undefined )
		{
			$(box).die("change").live("change",$(box),function(data){



				var v=searchlev;
				var beas=data.data;
				var where=beas.parent();
				var screen="select[data-name='"+beas.attr("next")+"']";
				listNext(beas);
				while(where.find(screen).length == 0 && v>0)
				{
					where=where.parent();
					v--;
				}

				if(where.find(screen).length >0 )
				{
					initSelect(where.find(screen).eq(0));
				}
			})
		}
	},"json",context)
}

/**
 * 初始化列表数据
 * @param context
 * @param url
 */
function initList(context,url,model)
{

	window.ajaxloadStat++;
	
	if(($(context).attr("init") != undefined && $(context).attr("init")=="false")||$(context).attr("url") == undefined){
		return ;
	}
	$(context).find("ul").css("z-index","999999999999");
	$(context).find("ul").empty();
	$(context).find("ul").append('<li><a href="javascript:void(0);" >请选择'+$(context).attr("text")+'</a></li>');
	$(context).find(".checked a").removeAttr("id");
	$(context).find(".checked a").html("请选择"+$(context).attr("text"));
	var data="";
	if($(context).attr("where")!= undefined)
	{
		var v=searchlev;
		var beas=$(context);
		var where=beas.parent();
		var screen="div.dropdown-list[data-name='"+beas.attr("where")+"']";
		
		while(where.find(screen).length == 0 && v>0)
		{
			where=where.parent();
			v--;
		}
		if(where.find(screen).length >0 )
		{
			var val=getListSelect(where.find(screen));
			if(val != null)
			{
				data=$(context).attr("where")+"="+val;
			}else{
				return ;
			}
		}
		
		
	}
	resultAjax((url==undefined?$(context).attr("url"):url),data,function(data,box){
		window.ajaxloadStat--;
		if(window.ajaxloadStat <= 0 )
		{
			if($(".fakeloader").length>0 ){
				$(".fakeloader").fadeOut();
			}
			
		}
		
		if(data.data != undefined ){
			data=data.data;
			
		}
		data=data.result !=undefined ?data.result:data;
		data=data.list !=undefined ?data.list:data;
		for(var item in data)
		{
			
			$(box).find("ul").append('<li><a href="javascript:void(0);"  id="'+data[item][$(box).attr("sel-id")]+'">'+data[item][$(box).attr("sel-name")]+'</a></li>');
		
		}
		
		if($(box).attr("default") != undefined )
		{
			
			//console.log("1==============>"+$(box).attr("data-name")+"===>"+$(box).find("ul").html());
			
			var a=$(box).find("ul li a[id='"+$(box).attr("default")+"']");
			
			//console.log($(box).attr("text")+"2==============>"+$(box).find("ul li").length+"ul li a[id='"+$(box).attr("default")+"']");
			
			
			$(box).find(".checked a").attr("id",a.attr("id"));
			$(box).find(".checked a").html(a.html());
			
			
			if($(box).attr("default-name") != undefined)
			{
				$(box).find(".checked a").attr("id",$(box).attr("default"));
				$(box).find(".checked a").html($(box).attr("default-name"));
				$(box).removeAttr("default-name");
			}
			$(box).removeAttr("default");
			
			if($(box).attr("next") != undefined ){
				var where=$(box);
				var screen="div.dropdown-list[data-name='"+$(box).attr("next")+"']";
				var v=searchlev;
				while(where.find(screen).length == 0 && v>0)
				{
					where=where.parent();
					v--;
				}
	
				if(where.find(screen).length >0 )
				{
					initList(where.find(screen));
				}
			}
		}
		if($(box).attr("next") != undefined )
		{
			    $(box).find("ul li").unbind("click").click($(box),function(data){
			    	
					$(this).parent().parent().find(".checked a").attr("id",$(this).find("a").attr("id"));
					
					var v=searchlev;
					var beas=data.data;
					var where=beas.parent();
					var screen="div.dropdown-list[data-name='"+beas.attr("next")+"']";
					listNext(beas);
					while(where.find(screen).length == 0 && v>0)
					{
						where=where.parent();
						v--;
					}

					if(where.find(screen).length >0 )
					{
						initList(where.find(screen));
					}
			})
		}
	},"json",context)
}


function listNext(context)
{
	
	
	if($(context).attr("next") != undefined)
	{
		if($(context).is("div"))
		{
			var where=$(context);
			var next="div.dropdown-list[data-name='"+$(context).attr("next")+"']";
			var v=searchlev;
			while(where.find(next).length == 0 && v>0)
			{
				where=where.parent();
				v--;
			}

			where.find(next).find("ul").css("z-index","999999999999");
			where.find(next).find("ul").empty();
			where.find(next).find("ul").append('<li><a href="javascript:void(0);" >请选择'+where.find(next).attr("text")+'</a></li>');
			where.find(next).find(".checked a").removeAttr("id");
			where.find(next).find(".checked a").html("请选择"+where.find(next).attr("text"));
			listNext(where.find(next));
		}else if($(context).is("select"))
		{

			var where=$(context);
			var next="div.dropdown-list[data-name='"+$(context).attr("next")+"']";
			var v=searchlev;
			while(where.find(next).length == 0 && v>0)
			{
				where=where.parent();
				v--;
			}
			where.find(next).empty();
			where.find(next).append('<option value="">请选择</option>');
			listNext(where.find(next));
		}


	}
	
}



/**
 * 初始化数据
 * @param data
 */
function initData(data){

	console.log(data);
	$("[show-data]").each(function(){

		var show=$(this).attr("show-data");
		$(this).html(data[show]);
	})


	if($("div.dropdown-list[data-name='province']").length>0)
	{
		setCityLink("div.dropdown-list[data-name='province']","div.dropdown-list[data-name='city']","div.dropdown-list[data-name='county']");
		if(data != null)
		{
			setCityList("div.dropdown-list[data-name='city']","city",data["province"]);
			setCityList("div.dropdown-list[data-name='county']","county",data["city"]);
		}
	}

	$(this).find("select[data-name]").each(function(){
		if(data != null && data[$(this).attr("data-name")]!="-"){
			//$(this).select2({val:data[$(this).attr("data-name")]});
			$(this).val(data[$(this).attr("data-name")]!="-"?data[$(this).attr("data-name")]:null).trigger("change");
			//$(this).selectedIndex=2;//val( data[$(this).attr("data-name")]);
			//$(this).val(data[$(this).attr("data-name")]!="-"?data[$(this).attr("data-name")]:"");
		}else
		{

			$(this).val(null).trigger("change");
		}
	});

	$(this).find("input[data-name]").each(function(){
		if(data != null){
			$(this).val(data[$(this).attr("data-name")]!="-"?data[$(this).attr("data-name")]:"");
		}else
		{
			$(this).val("");
		}
	});

	$(this).find("select[data-name]").each(function(){
		if(data != null){
			if($(this).find("option[value='"+data[$(this).attr("data-name")]+"']").length == 0 )
			{
				$(this).append("<option value='"+data[$(this).attr("data-name")]+"'>"+data[$(this).attr("sel-name")]+"</option>");
			}


			//alert($(this).find("option[value='"+data[$(this).attr("data-name")]+"']").length);
			//$(this).val(data[$(this).attr("data-name")]!="-"?data[$(this).attr("data-name")]:"");
			//$(this).find("option[value='"+data[$(this).attr("data-name")]+"']").attr("selected","selected");
			//alert($("#"+$(this).attr("id")).length + "=="+ data[$(this).attr("data-name")]);
			$(this).val(data[$(this).attr("data-name")]);

		}else
		{
			$(this).val("");
		}

	})
	//下拉
	$(this).find("div.dropdown-list[data-name]").each(function(){
		if(data != null){
			var a=$(this).find("li a[id='"+data[$(this).attr("data-name")]+"']");
			$(this).find(".drop-list-min a").attr("id",a.attr("id"));
			$(this).find(".drop-list-min a").html(a.html());
			$(this).attr("default",data[$(this).attr("data-name")]);
			if($(this).attr("layer") != undefined)
			{
				if(data[$(this).attr("layer")] != '-')
				{
					$(this).attr("default-name",data[$(this).attr("layer")]);
				}
			}
			
		}else{
			$(this).find(".drop-list-min a").removeAttr("id");
			$(this).find(".drop-list-min a").html("请选择"+$(this).attr("text"));
		}
		
	})
	$(this).find("textarea[data-name]").each(function(){
		if(data != null){
			$(this).val(data[$(this).attr("data-name")]!="-"?data[$(this).attr("data-name")]:"");
		}else
		{
			$(this).val("");
		}
	});
}




/**
 * contextBox:表单容器
 * url:表单提交路径
 * callFn:回调方法
 * 提交表单
 */
function submit(callFn,url,px){
	
	
		
		
	var data="1=1";
	var isSubmit=true;
	//遍历input
	$(this).find("input[data-name]").each(function(){
		if($(this).attr("regexp") == "tel"){
			if(!checkTel($(this).val())){
				alert("电话号码格式错误");
				isSubmit=false;
			}
		}
		if($(this).hasClass("noNull") && $(this).val().length==0 &&isSubmit){
			alert($(this).parent().prev().text()+"不能为空！");
			isSubmit=false;
		}
		data+="&"+$(this).attr("data-name")+"="+$(this).val();
	});

	//遍历select
	$(this).find("select[data-name]").each(function(){


		if($(this).hasClass("noNull") &&( $(this).val() == null || $(this).val().length==0  )&&isSubmit){
			alert($(this).parent().prev().text()+"不能为空！");
			isSubmit=false;
		}
		data+="&"+$(this).attr("data-name")+"="+$(this).val();
	});
	
	//下拉
	$(this).find("div.dropdown-list[data-name]").each(function(){
		
		if($(this).find(".drop-list-min a").attr("id") != "" && $(this).find(".drop-list-min a").attr("id") != undefined)
		{
			data+="&"+$(this).attr("data-name")+"="+$(this).find(".drop-list-min a").attr("id");
		}else{
			if($(this).hasClass("noNull") &&isSubmit){
				alert($(this).attr("text")+"不能为空！");
				isSubmit=false;
			}
		}
	})
	
	$(this).find("textarea[data-name]").each(function(){
		data+="&"+$(this).attr("data-name")+"="+$(this).val();
	});
	
	
	var dz=(url==undefined?$(this).attr("url"):url);
	function resultfn(data,p)
	{
		if(data.result != undefined)
		{
			data=data.result;
		}
		
		if(data.status == 0)
		{

			if(p.fn!=undefined)
			{
				console.log(p);
				p.fn(data,p.p);
			}else{
				if(typeof ($(p.obj).modal) ==  "function")
				{
					$(p.obj).modal("hide");
				}

				alert("操作成功！");
			}
			
		}else{
			var errList=data.errList;
			var msg="操作失败";
			if(errList != undefined )
			{
				for(var item in errList)
				{
					msg+="\n"+errList[item];
				}
			}
			alert(msg);
		}
	}
	
	if(isSubmit)
	{
		var p=new Object ();
		p.fn=callFn;
		p.obj=this;
		p.p=px;
		resultAjax(dz,data,resultfn,"JSON",p);
	}
	
}



function checkTel(value){
	if(value == "")
	{
		return true
	}
    var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
    var isMob=/^((\+?86)|(\(\+86\)))?(13[012356789][0-9]{8}|15[012356789][0-9]{8}|18[02356789][0-9]{8}|147[0-9]{8}|1349[0-9]{7})$/;
    if(isMob.test(value)||isPhone.test(value)){
        return true;
    }
    else{
        return false;
    }
}


resultAjax=function(url,data,m_fun,type,result){
	var conf={"stringFormat":false};
	$().invoke(url,data,[function(m,r){
		if (type=='JSON'||type=='json'){
			//r=jQuery.parseJSON(r);
		}
		m_fun.apply(self, [r,result] );
	}],conf);
	return;
}


validation=function(context)
{
	this.result=true;
	this.rang=function(val,rang,element)
	{
		var r=eval("(" + rang + ")");
		if(!(parseFloat(val) >= r[0] && parseFloat(val) <= r[1]))
		{
			layer.tips('只能输入'+r[0]+"至"+r[1]+"之间的数值。", element, {
				  tips: [3, '#ff0000'],
				  tipsMore: true
			});
			return false;
		}
		
		return true;
	}
	
	
	
	$.each($("input",context),function(validation){
		if($(this).attr("rang") != undefined && $(this).val().length >0)
		{
			
			validation.result=validation.rang($(this).val(),$(this).attr("rang"),this);
		}
	},[this])
	
	return result;
}







